{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-07-02T18:08:03.298664Z",
     "start_time": "2020-07-02T18:08:02.501917Z"
    }
   },
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.append('../')\n",
    "\n",
    "import porousmedialab.analytical_solutions as analytical_solutions\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-07-02T18:08:04.787570Z",
     "start_time": "2020-07-02T18:08:03.300934Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3deXhU1cHH8e/NzpIAEkjCEgIkHBLZKlRWNxTeQrEqVV+pC+L21i5WbK2WVkTcWxHfWilqFSu2BVF5C7FVoVbRsKi4FAheNiOgrBGSsCSZZO77xzDDEMgyScjcSX6f5+lTztyZc88cML+ce84913IcBxEREbeJCncDRERETkUBJSIirqSAEhERV1JAiYiIKymgRETElWKa+oSffvqpEx8f39SnjVj+VZaWZYW5JZFDfRYa9Vfo1GehcxyHo0eP7h88eHCnun6myQMqLi6O7Ozspj5txCovLwd8/SZ1oz4LjfordOqz0JWXl7Nu3bovQ/mMLvGJiIgrKaBERMSVFFAiIuJKTT4HJSJSlcfjYefOnZSWloa7KXWiRRI1S0hIoFu3bsTGxjaoHgWUiITdzp07SUxMJCMjIyJ+6Hu9XgCionQRqirHcSgsLGTnzp307NmzQXWpd0Uk7EpLS+nYsWNEhJPUzLIsOnbs2CijYQWUiLiCwqn5aKy/SwWUiIi4kgJKRCTIM888w6hRoygrKwv5s08++SR/+9vfqj3+0ksvAbBixQoWLlzYqHXX5tprr2Xr1q3VHv/www/5/PPPAfjJT35S7/M0prAFlB6UKCJutHTpUsaPH8/rr7/e6HX/8Y9/BODcc8/lv//7vxu9/oZ49dVX2bt3LwB/+MMfwtwanzqt4jPGDAUetW37/CqvXwxMByqA523bfrYu9TmOw8zcfJISYpk6pk+ITRaR5uzFF1/k+eefb9Q6b7jhBq677rpa37dmzRrS09O56qqruPPOO5k4cSLXXnstffv2ZfPmzRw6dIj//d//JS0tjccff5wNGzZw+PBhevfuzcMPPxyo5/HHHyclJYWrr76aoqIipkyZwpgxYygqKmLGjBkMGDCAbdu28Ytf/II5c+awfPlyKisrmTRpEldddRWzZs1i/fr1p6w72Nq1a3n00UeJiYkhKSmJxx57jPj4eKZNm8aOHTuorKxkypQpjB8/PvCZJ598kuTkZCZNmsTWrVuZMWMGd911F++99x4bNmwgMzOTK664gry8PPLz87n//vuJjo4mPj6e+++/H6/Xy89//nNSU1PZsWMH/fv357777mv4X9Ip1DqCMsb8EvgTkFDl9VhgNjAWOA+4xRiTWlt9/nCal1dAcalHIykRcY1FixZxxRVX0KtXL+Li4vjss88AGDBgAC+88AIjR47k9ddf59ChQyQlJTFv3jwWLFjAp59+yp49ewL1XHHFFfzf//0fALm5uVx88cXceuuttGvXjhkzZgTel5+fz4oVK1i0aBELFixgy5YtlJSU1Fh3sOXLlzNmzBheeuklLr/8coqLi1m4cCEdOnRgwYIFzJs3jyeeeIJvvvmmxu/dr18/zjnnHO688066dOkSeP03v/kN06dP56WXXmLSpEk88sgjABQUFPDggw+yaNEiVqxYwb59++rV37WpywhqKzARmF/l9Wxgi23bBwCMMe8D5wCLaqrsP1/sYl5eGZOHpXP32Ew8Hk89mt1yqH9Cpz4LjRv6y3GcwL1F11xzDddcc02jn8Nff3WKiopYsWIFhYWFzJ8/n5KSEubPn4/jOPTt2xev10tKSgr79+8nLi6OwsJCpk6dSuvWrTly5Ajl5eU4joPjOHTt2pXWrVuzadMmlixZwpw5cwLn93q9gfdt3bqV/v37Y1lWYOTj8XhqrDv4e9xyyy08/fTTTJ48mZSUFPr168eWLVsYPnw4Xq+X1q1b07t3b7788svA54Pr8bcluE3B7dy7dy/GGLxeL4MHD2bWrFk4jkN6ejqtW7cGIDk5mdLS0pP613GcwKa6UL9/Z7WOoGzbfhU4Vc1JQFFQuQRoV1t9lcX7AZg2ro+WlYqIayxdupTvf//7PPfcczz77LMsXLiQlStX8s0335z0s+q9995j9+7dzJo1i6lTp1JaWnrS1aArrriCuXPnkpqaSocOHYCT59579epFfn4+Xq8Xj8fDDTfcwIoVK9i1a1eNdfvl5uZy6aWX8uc//5nMzEwWLVpE7969Wbt2LQCHDx9m06ZNdOvWLfCZ+Pj4wIgnPz8/8HpUVNRJIdO5c2ds2wZ8iygyMjLq2p2NoiE7SRQDiUHlROBgbR9yvJUAPPLWFqZPyFFI1ZG29Q+d+iw04ewvy7LCvivDK6+8wm9/+9tAO9q0acPYsWN55ZVXAu2zLAvLshgwYABz587lqquuIi4uju7du7Nv377A8aioKMaOHcsDDzzA7373u0CdvXv35pe//CUjRozAsizOPPNMzj33XK6++mq8Xi+TJk1i0KBBtdbtN2DAAKZNm0br1q2JjY1l5syZpKSkcM8993D11VdTVlbGT37yEzp16hT4/Pjx47n99tv56KOP6NevX6DOgQMH8vjjj5Oeng74AuuBBx7ggQcewHEcoqOjeeihh05qx6na5X+9of+mrLrMARljMoAFtm0PC3otFsgHhgKHgFXA92zb/qqmuubPn+98ntCXv6zdy5SRGQqpWui5M6FTn4XGDf21cePGiHpOXF22Ojp69CjXXHMNixYtCnv4hkPVv9Njz4NaO3jw4CF1rSPkEZQx5gdAW9u2nzHG3AG8ie9S4fO1hZPfDWedQVxCa5ISYhVOItLsfPzxx9x7773cfvvtLTKcGkudAsq27QJg2LE//zXo9aXA0lBPumfPHqZPGK5wEpFm6ayzzmLp0pB/NEoVYYn23bt3K5xERKRGYQmo6tb0i4iI+IVtBCUiIlKTJg+omJgYjaBERKRWTR5QsbGxGkGJSINUvT2mMbZMW7NmDUOGDGHXrl2B1x577DFee+21BtddnY0bN4a8Metrr73GY489dppa5C5hCSiNoESkvmYv28TM3PxAKPn395y9bFOD646NjeVXv/pVk+0Rmp2d7ZpHW7hRQ3aSqN8JY2I0ghKRenEch+JSD/PyCgCYPiEnsPn0lJEZOI7ToBXCw4YNw+v18pe//OWE/QCvvPJKXn755cCfZ82axeLFi9m+fTsHDhygqKiIH/zgB7z11lt88cUXPProowwaNIj58+eTm5sb2MHhuuuu4+677+bgwYMcPHiQG2+8kX/84x/Mnj2bRYsW8be//Q2v18uFF17IT3/6U1566SXeeustKioqSExM5Mknn2xQ/0WaJg8o/wiqof+QRKTlsSyL6RNyAJiXVxAIqsbclWbGjBlcccUVjBo1qtb3JiQk8Nxzz/HMM8/w7rvvMnfuXF599VVef/112rZtyz/+8Q/++te/YlkW119/faDOYcOGcf3117NmzRoACgsLefbZZ1myZAlxcXE88sgjHDp0iIMHD/LCCy8QFRXFjTfeyLp16xr8/SJJWALq6NGjgS3lRURC4Q8pfzgBjbplWocOHZg2bRp33303Z5111knHgy//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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "analytical_solutions.reaction_equation_plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-07-02T18:08:06.836238Z",
     "start_time": "2020-07-02T18:08:04.790009Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Simulation started:\n",
      "\t 2020-07-02 20:08:04\n",
      "\n",
      "\n",
      "Estimated time of the code execution:\n",
      "\t 0h:00m:01s\n",
      "Will finish approx.:\n",
      "\t 2020-07-02 20:08:06\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "analytical_solutions.transport_equation_plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-07-02T18:08:07.921157Z",
     "start_time": "2020-07-02T18:08:06.838024Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Simulation started:\n",
      "\t 2020-07-02 20:08:06\n",
      "\n",
      "\n",
      "Estimated time of the code execution:\n",
      "\t 0h:00m:00s\n",
      "Will finish approx.:\n",
      "\t 2020-07-02 20:08:07\n"
     ]
    },
    {
     "data": {
      "image/png": "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mtGvXz9++uknT5eTIxRQIiK5gGVZfPTRRxQpUoS2bdty8eJFT5fkdgooEZFcolChQnzyySfYtk2vXr08XY7bKaBERHKRRx55hN69ezN58mSioqI8XY5bKaBERHKZIUOGUL16dbp168bRo0c9XY7bKKBERHKZoKAg5syZw+XLl3n66adJSkrydEluoYASEcmFIiMjGT9+PN988w2jRo3ydDluoYASEcmlunTpwpNPPskbb7zB1q1bPV1OtlNAiYjkUpZlMXnyZIoXL07btm05f/58muW5fd4+BZSISC5WsGBBZs2axZ49e/jHk51SQyll0tmxK6M9XGHWKaBERHK5Bx98kDpPduWnlQtp1W9cnnkKryuzmYuIiBezLIvVsz/gjp838fm4Adx2rgABEUVSZ0TPrTOgqwclIpIHBAUF8e2ShTgcSZxcPBpHUmKuDidQQImI5AkOh4M5v8VR8NHniD38C+c2f57rH3CoU3wiIrmc8zWn7s915bfwY8xfMIdJt1cByLU9KfWgRERyOeen8L712N1MmjSJkiVuJXblOIKSYnNlOIECSkQkT+hZLzK1p5Q/f35mzZrF2eNHif5igqdLyzIFlIhIHuHcU3rggQd44403mD59OvPmzfNgVVmngBIRyaMGDhxIrVq1eO655zh48KCny8k0BZSISB4VEBDA7NmzSUpKon379iQmJnq6pExRQImI5GFlypRh4sSJrFu3jmHDhnm6nExRQImI5HHt27enbdu2DBo0iI0bN3q6HJdleB+UMcYPmAhUAWKBbrZt70nnM0uAL23bnuSOQkVEJOsmTpzIhg0baNeuHdu3byciIsLTJWXIlR5UUyDEtu3aQF9gdDqfGQoUzM7CREQk++TLl4/Zs2dz8OBBXnrpJU+X4xJXZpKoCywHsG17kzGmhvNCY0wLIAlY5soOHQ4HcXFxma0zT4iPj/d0CR6l9qv9vswb2l+jRg3eeOMNhgwZwj//+U/atWuXY/vOSvtd6UFFAGedXicaYwIAjDEVgbbAwEzvWUREclzfvn2pW7cuL7/8Mr/99luaZd42b58rPahzQLjTaz/bthOufP80UAL4BigNxBljDti2vfxaG7Msi6CgoCyWmzeo/Wq/L1P7Pdv+oKAgPv30U8rfXYl6j7dg/87thIWFpc7nFxESSM96kR6tMYUrPaj1QCMAY0wtYEfK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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "analytical_solutions.transport_equation_boundary_effect()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-07-02T18:08:07.926038Z",
     "start_time": "2020-07-02T18:08:07.923363Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import porousmedialab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-07-02T18:08:09.320100Z",
     "start_time": "2020-07-02T18:08:07.928681Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: cmocean in /Users/imarkelo/opt/anaconda3/lib/python3.7/site-packages (2.0)\r\n"
     ]
    }
   ],
   "source": [
    "!pip install cmocean"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-07-02T18:08:09.500650Z",
     "start_time": "2020-07-02T18:08:09.323074Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'2020-07-02 20:08:09.497751'"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "from matplotlib import rc\n",
    "import matplotlib.ticker as tkr\n",
    "import matplotlib.dates as mdates\n",
    "from datetime import datetime, timedelta\n",
    "from matplotlib.colors import ListedColormap\n",
    "import seaborn as sns\n",
    "sns.set_style(\"whitegrid\")\n",
    "sns.set_style(\"ticks\")\n",
    "import scipy.io as sio\n",
    "import cmocean\n",
    "\n",
    "import sys\n",
    "sys.path.append('../')\n",
    "\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "\n",
    "sns.set_style(\"whitegrid\")\n",
    "sns.set_style(\"ticks\")\n",
    "\n",
    "rc('text', usetex=False)\n",
    "rc(\"savefig\", dpi=90)\n",
    "rc(\"figure\", dpi=90)\n",
    "\n",
    "plt.rcParams['figure.figsize'] = 6, 4\n",
    "\n",
    "import pandas as pd\n",
    "\n",
    "pd.options.display.max_columns = 999\n",
    "pd.options.display.max_rows = 400\n",
    "\n",
    "import h5py\n",
    "\n",
    "from datetime import datetime\n",
    "str(datetime.now())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-07-02T18:08:10.779905Z",
     "start_time": "2020-07-02T18:08:09.503086Z"
    }
   },
   "outputs": [],
   "source": [
    "C0 = {'C': 1}\n",
    "coef = {'k': 2}\n",
    "rates = {'R': 'k*C'}\n",
    "dcdt = {'C': '-R'}\n",
    "dt = 0.001\n",
    "T = 10\n",
    "time = np.linspace(0, T, int(T / dt) + 1)\n",
    "num_sol = np.array(C0['C'])\n",
    "for i in range(1, len(time)):\n",
    "    C_new, _, _ = porousmedialab.desolver.ode_integrate(\n",
    "        C0, dcdt, rates, coef, dt, solver='rk4')\n",
    "    C0['C'] = C_new['C']\n",
    "    num_sol = np.append(num_sol, C_new['C'])\n",
    "assert max(num_sol - np.exp(-coef['k'] * time)) < 1e-5\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-07-02T18:08:11.012824Z",
     "start_time": "2020-07-02T18:08:10.781578Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 600x450 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4,3), dpi=150)\n",
    "plt.plot(time, np.exp(-coef['k'] * time), 'k', label='Analytical')\n",
    "plt.scatter(time[::100], num_sol[::100], marker='x', label='Numerical')\n",
    "plt.xlim([time[0], time[-1]])\n",
    "ax = plt.gca()\n",
    "plt.ylim(0,None)\n",
    "plt.xlim(0,3)\n",
    "ax.ticklabel_format(useOffset=False)\n",
    "ax.grid(linestyle='-', linewidth=0.2)\n",
    "plt.legend()\n",
    "plt.xlabel('Time, t')\n",
    "plt.ylabel('Concentration, C')\n",
    "plt.tight_layout()\n",
    "plt.savefig('analytical_reactions.pdf')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
